Consolidate multiple tools into unified gomailtest binary#48
Conversation
The workflow was trying to build 5 separate binaries from cmd/msgraphtool, cmd/smtptool, etc. which do not exist. The project uses a single unified CLI at cmd/gomailtest where all protocols are subcommands. Update the build, verify, zip, and release steps to use the actual gomailtest binary. https://claude.ai/code/session_01CBZDcCNEFkqBuXjoFqE9Jp
PR Review: Consolidate multiple tools into unified gomailtest binaryOverall this is a clean, well-structured change. The build workflow simplification is logical and the documentation updates are consistent throughout — good work. I found a few issues worth addressing before merge. Bug: Stale "Tools Overview" table in release notes (line 233–239)This is the main actionable issue. The table at the bottom of the release body was not updated and still references the old standalone tool names: | Tool | Protocol | Ports | Auth Methods |
|------|----------|-------|--------------|
| smtptool | SMTP | 25, 587, 465 | PLAIN, LOGIN, CRAM-MD5, XOAUTH2 |
| imaptool | IMAP | 143, 993 | PLAIN, LOGIN, XOAUTH2 |
| pop3tool | POP3 | 110, 995 | USER/PASS, APOP, XOAUTH2 |
| jmaptool | JMAP | 443 | Basic, Bearer |
| msgraphtool | Graph API | 443 | Client Secret, Certificate, Bearer |Every GitHub Release created after this merges will show these tool names even though they no longer exist as standalone binaries. Suggested replacement: | Subcommand | Protocol | Ports | Auth Methods |
|------------|----------|-------|--------------|
| gomailtest smtp | SMTP | 25, 587, 465 | PLAIN, LOGIN, CRAM-MD5, XOAUTH2 |
| gomailtest imap | IMAP | 143, 993 | PLAIN, LOGIN, XOAUTH2 |
| gomailtest pop3 | POP3 | 110, 995 | USER/PASS, APOP, XOAUTH2 |
| gomailtest jmap | JMAP | 443 | Basic, Bearer |
| gomailtest msgraph | Graph API | 443 | Client Secret, Certificate, Bearer |Minor: Flag style inconsistency in Quick Start examplesThe SMTP/IMAP/POP3/JMAP examples use # Other subcommands (double-dash style via --help)
./gomailtest smtp testconnect -host smtp.example.com -port 25
# msgraph still uses single-dash flags
./gomailtest msgraph -tenantid "..." -clientid "..." -secret "..." \
-mailbox "user@example.com" -action getinboxIf Nit:
|
Summary
This PR consolidates five separate CLI tools (msgraphtool, smtptool, imaptool, pop3tool, jmaptool) into a single unified binary called
gomailtestwith protocol-specific subcommands.Key Changes
gomailtestbinary instead of five separate toolsgomailtest smtp,gomailtest imap,gomailtest pop3,gomailtest jmap,gomailtest msgraph)gomailtestbinary on all platforms (Windows, Linux, macOS)smtptool -action testconnect) to unified subcommand format (e.g.,gomailtest smtp testconnect)Implementation Details
./cmd/gomailtestinstead of building from five separate command directorieshttps://claude.ai/code/session_01CBZDcCNEFkqBuXjoFqE9Jp